package com.company.java.basic.day06;
//编程思想
// 面向过程pop 面向对象oop
/*
面向过程中函数是最小单位，每一个函数实现一个功能，将数据与功能分离
面向对象中对象/类是最小的单位，要在复杂的业务逻辑中先提取出类，再来考虑这个类有什么功能
是把数据与功能合起来
面向对象是以指挥者的角度
 */
/*
类：一类具有相同特性的事物的抽象描述
对象：由类具体化的个体
类是众多对象的抽象描述，是对象的设计模板
对象是类的个体
 */
/*
类的设计
1、从逻辑或功能中提取关键字，映射到现实世界的事物，再转换到计算机中的类
2、类中的5个内容
（1）属性（描述数据的特征）
（2）方法（描述行为的特征，功能的特征）
（3）构造器（创建对象时要用）
（4）代码块（类和对象初始化）
（5）内部类（在大类中又有独立的小类）
 */
/*
类的声明
【修饰符】class 类名
属性 【修饰符】 数据类型 属性名
属性的特征
1、每个对象的属性都是独立的互不干扰
2、当没有给属性赋值时，属性都为数据类型的默认值
shor byte int long 0
float double 0.0
char none
boolean false
String null
方法的声明
修饰符 方法的返回类型 方法名(【参数列表】)
void 为无返回值
在同一类中的方法可以相互调用
 */

public class oop {
    public static void main(String[] args) {
        //创建对象 类名 对象名 = new 类名()
        Person p = new Person();
        // 编辑对象属性 对象名.属性名 = 值
        p.name = "liu";
        p.age = 20;
        p.sex = "wen";
        System.out.println("姓名："+p.name);
        System.out.println("年龄："+p.age);
        System.out.println("性别："+p.sex);
        System.out.println(p.PrintRad());

        //练习
        Circle c1 = new Circle();
        c1.radius = 12.3;
        Circle c2 = new Circle();
        c2.radius =  15.0;
        PrintSq();
        System.out.println();


    }
    public static void PrintSq(){
        for (int i=0;i<5;i++){
            for(int j=0;j<10;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

class Person{
    String name;
    int age;
    String sex;
    String adder = "arifhali";
     String PrintRad(){
        return adder;
    }
}
class Circle{
    double radius;


}